package com.guaoran.jvm.classloader;

/**
 * @author : guaoran
 * @Description
 *  通过编程显示有哪些ClassLoader
 * @date :2019/2/28 14:53
 */
public class ClassLoaderDemo {
    public static void main(String[] args) {
        Class<?> classLoaderDemoClazz = new ClassLoaderDemo().getClass();
        //sun.misc.Launcher$AppClassLoader@18b4aac2 ，系统的 ClassLoader
        System.out.println(classLoaderDemoClazz.getClassLoader());
        //sun.misc.Launcher$ExtClassLoader@4554617c ,扩展的 ClassLoader
        System.out.println(classLoaderDemoClazz.getClassLoader().getParent());
        //null,BootStrapClassLoader
        System.out.println(classLoaderDemoClazz.getClassLoader().getParent().getParent());

        System.out.println("=====================================");

        //null ,因为 Object 和 String 都是 rt.jar 里面的，对应的都是BootStrapClassLoader
        System.out.println(new Object().getClass().getClassLoader());
        System.out.println(new String().getClass().getClassLoader());
    }
}
